export class AppInfo {
	osDict = new Map()
	instance = null

	constructor() {
		this.load()
	}

	static getInstance() {
		if (!this.instance) {
			this.instance = new AppInfo()
		}
		return this.instance
	}

	getAppInfo(name = '') {
		return {
			appId: "app1",
			osName: this.osDict.get(uni.$u.sys().osName),
			'Tenant-Id': 1,
			appName: name || null
		}
	}

	load() {
		this.osDict.set('ios', 1)
		this.osDict.set('android', 2)
		this.osDict.set('windows', 3)
		this.osDict.set('macos', 4)
		this.updateApp()
	}

	updateApp() {
		const updateManager = uni.getUpdateManager()
		updateManager.onCheckForUpdate(function(res) {})
		updateManager.onUpdateReady(function(res) {
			uni.showModal({
				title: '更新提示',
				content: '新版本已经准备好，是否重启应用？',
				success(res) {
					if (res.confirm) {
						// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
						updateManager.applyUpdate()
					}
				}
			})
		})
		updateManager.onUpdateFailed(function(res) {
			// 新的版本下载失败
			uni.showModal({
				content: '下载失败，请删除当前小程序后重新打开',
				showCancel: false,
				confirmText: '知道了'
			})
		})
	}
}
